Technotes
TECHNOTE: Approaching the Millennium: The Mac and the Year 2000
Brian Bechtel
Apple Developer Technical Support (DTS)
There has been much concern recently about various operating systems and
computers and their handling of the year 2000. Many operating systems and
computers use two digits to represent and store the year, and this can cause
problems in the year 2000. For example, a simple comparison would falsely claim
that the year 2000 (i.e., 00) falls before the year 1999 (i.e., 99).
The Mac OS and Apple Macintosh computers do not have problems with the year
2000. The following Q & A's address this, and direct the reader to further
sources of information related to this topic.
Contents
How Will the Mac OS Handle the Year 2000?
All Mac OS date and time utilities have correctly handled all issues related to
the year 2000 since the introduction of the Macintosh. The original date and
time utilities, introduced with the original Macintosh 128K in 1984, used a
32-bit value to store seconds, starting at 12:00:00 a.m., January 1, 1904.
Since Apple used a 32-bit value to store seconds, this means that the last
date represented in this 32-bit value is 6:28:15 a.m. on February 6, 2040. The
current date and time utilities, documented in
Inside Macintosh: Operating System Utilities,
use a 64-bit signed value. This covers dates from 30081
B.C. to 29940 A.D. For further reference, see
Inside Macintosh: Operating System Utilities, Chapter 4,
or its predecessor, Inside Macintosh Volume II.
Gregorian calendar support is included with all localized versions of the Mac
OS. In addition, the Arabic version of the Mac OS supports both the Arabic
astronomical lunar calendar and the Arabic civil lunar calendar. The Hebrew
version of the Mac OS supports the Jewish calendar. The Persian version of the
Mac OS supports the Iranian national calendar.
In general, yes. The only problems you may encounter are when you use your own
date and time utility package, rather than using the Toolbox calls supplied by
the Mac OS. If you are using your own date and time utilities, you should test
carefully to ensure that you handle all of the subtle issues of date and time
conversion.
The Date & Time control panel constrains user entry to dates between
January 1, 1920 and December 31, 2019. This feature was added for compatibility
with the original Macintosh System 6 General control panel, which limited dates
so there would be no ambiguity about a 2-digit year (which was all that was
normally displayed on a US system). The Date & Time control panel uses the
Script Manager function ToggleDate. ToggleDate was enhanced in 1989 to have an
option that limited dates to the 1920-2019 range so that it could be used by
the General control panel and other control panels that wanted to have a date
widget that operated in the same way. You can set a date beyond 2019, up to the
year 2040, by using the Macintosh Toolbox call SetDateTime().
Yes, there will be a February 29, 2000. The Gregorian calendar is a solar
calendar that measures time from the year of the birth of Jesus Christ. It
contains 11 months with fixed lengths of 30 or 31 days and a twelfth month of
28 days that is lengthened to 29 days every fourth year (called a leap year).
The Gregorian calendar is a refinement of the Julian calendar, established in
Roman times. The Julian calendar assumed a year of 365.25 days; the actual
length of the solar year, however, is 365.2422 days, producing an error of one
day every 128 years. In 1582, Pope Gregory XIII adjusted the error that had
accumulated over the centuries by canceling the ten days between October 5 and
October 15. He further ordained that years divisible by 100 would not be leap
years unless they were also divisible by 400. (From this rule, you can see that
1800 and 1900 are not leap years, but 2000 is.) This adjusted the Gregorian
calendar to 365.2425 days and reduced its error to one day in 3,323 years.
Non-Catholic cultures adopted the Gregorian calendar over the succeeding
centuries, calling Julian dates Old Style and Gregorian dates New Style. This
change occurred in the United Kingdom and its colonies in 1751.
For information on the Mac OS utilities for date and time manipulation, see
Inside Macintosh: Operating System Utilities, chapter 4, the Date, Time
and Measurement Utilities. For information about other calendar systems
supported by the Mac OS, see Guide to Macintosh Software Localization,
chapter 9, Localized Macintosh System Software and chapter 11, Calendars and
Dates.
There is a World Wide Web site devoted to the issues of the Year 2000, at
http://www.year2000.com, which contains much information on this
subject. There is also a mailing list to discuss Year 2000 issues. Send an
email to listmanager@hookup.net with the text SUBSCRIBE YEAR2000 in the body of
the message (not in the subject).
A good quick reference to the Gregorian calendar and its evolution may be found
at
http://es.rice.edu/ES/humsoc/Galileo/Things/gregorian_calendar.html
- Apple Computer, Inc.,
Inside Macintosh: Operating System Utilities
(Addison-Wesley, 1994).
- Apple Computer, Inc., Guide to Macintosh Software Localization
(Addison-Wesley, 1992).
- G. V. Coyne, M. A. Hoskin, and O. Pedersen, eds., Gregorian Reform of the
Calendar: Proceedings of the Vatican Conference to Commemorate its 400th
Anniversary (Vatican City: Pontifical Academy of Sciences, Specolo
Vaticano, 1983).
- Information Leaflet No. 48: Leap Years, Royal Greenwich Observatory,
Madingley Road, Cambridge, CB3 0EZ, United Kingdom. Available at the URL
http://www.ast.cam.ac.uk/RGO/leaflets/leapyear/leapyear.html
- Act of Parliament, "An Act for Regulating the Commencement of the Year; and
for Correcting the Calendar now in Use." 24 Geo. 2. c. 23 (A.D. 1751. Anno
vicesimo quarto GEORGII II. CAP. XXIII.)
- Pope Gregory XIII, Inter Gravissimus, 1582
Acknowledgments
Tom Maremaa, Doug MacMillan, Frank Rimalovski, Peter Edberg, and Bob Wambaugh.
Technotes
Previous Technote |
Contents |
Next Technote